﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using ThridGroup.ERP.DTO.HumanResourcesDto;
using ThridGroup.ERP.DTO.SupplierDto;

namespace ThridGroup.ERP.HumanResources
{   
    /// <summary>
    /// 入职申请审核服务接口
    /// </summary>
    public  interface IOnboardingReviewServices
    {  
        /// <summary>
        /// 添加入职申请审核
        /// </summary>
        /// <param name="onboardingReviewDto"></param>
        /// <returns></returns>
        Task<int> OnboardingReviewAsync(OnboardingReviewDto  onboardingReviewDto);
        /// <summary>
        /// 入职申请审核（分页查询）
        /// </summary>
        /// <param name="page">页码</param>
        /// <param name="limit">每页数量</param>
        /// <param name="personName">人员名称（模糊查询）</param>
        /// <param name="interviewPeople">面试官（模糊查询）</param>
        /// <returns>分页后的入职申请审核列表</returns>
        Task<PagedResultDto<OnboardingReviewListDto>> GetOnboardingReviewList(int page, int limit, string personName=null,string interviewPeople=null);

        /// <summary>
        /// 删除单条入职申请审核
        /// </summary>
        /// <param name="id">主键ID</param>
        Task DeleteOnboardingReviewAsync(int id);

        /// <summary>
        /// 批量删除入职申请审核
        /// </summary>
        /// <param name="ids">主键ID集合</param>
        Task BatchDeleteOnboardingReviewAsync(List<int> ids);

        /// <summary>
        /// 获取单条入职申请审核详情（反填）
        /// </summary>
        /// <param name="id">主键ID</param>
        /// <returns>入职申请审核详情</returns>
        Task<OnboardingReviewDto> GetOnboardingReviewByIdAsync(int id);

        /// <summary>
        /// 修改入职申请审核
        /// </summary>
        /// <param name="onboardingReviewDto">入职申请审核DTO</param>
        Task<int> UpdateOnboardingReviewAsync(OnboardingReviewDto onboardingReviewDto);

    }
}
